package cn.gok.homework;

import java.io.*;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.ParseException;
import java.util.Calendar;

/*
1 使用大数运算，就算

        4444444.4444/3.333333的值，保留2位小数，四舍五入



        2  输入你生日的前一周的周四是该年的第几天？
        Calendar:set方法设置到你的生日，
        add方法跳到前一周的周四，通过 xxxx获得是该年的第几天? get(Calendar.DAY_OF_YEAR)

        3、递归输出src目录中的所有.java文件的绝对路径。

        4、在电脑D盘下创建一个文件为HelloWorld.txt文件，判断他是文件还是目录，再创建一个目录IOTest，之后将HelloWorld.txt拷贝到IOTest目录的a.txt去。


        5、从utf-8编码格式的文本复制到GBK编码的文本（不能出现乱码）

 */
public class Homework4 {
    public static void main(String[] args) throws ParseException, IOException {
        大数运算();
        生日前一周();
        File file = new File("D:\\workspace_idea\\resp1\\day4");
        输出绝对路径(file);
        copy();
        编码转换();
    }
    private static void 编码转换() throws IOException {
        InputStreamReader isr=new InputStreamReader(new FileInputStream("D:\\workspace_idea\\HelloWord.txt"),"utf-8");
        char b[]=new char[100];
        int len=0;
        String string = new String();
        while(((len = isr.read(b)) !=-1)){
            string = new String(b,0,len);
        }
        isr.close();
        OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("D:\\workspace_idea\\a.txt"),"GBK");
        osw.write(string);
        osw.close();
        System.out.println("从UTF-8转换成GBK成功");
    }

    private static void copy() throws IOException {
        File file1 = new File("D:\\workspace_idea\\HelloWord.txt");
        if (!file1.exists()){
            System.out.println(file1.createNewFile());
        }
        if (file1.isFile()){
            File file2=new File("D:\\workspace_idea\\IOTest");
            file2.mkdir();
            Reader re = new FileReader("D:\\workspace_idea\\HelloWord.txt");
            Writer wr = new FileWriter("D:\\workspace_idea\\IOTest\\a.txt");
            char c[] = new char[100];
            int len=0;
            while ((len=re.read(c))!=-1){
                String string = new String(c,0,len);
                wr.write(string);
            }
            System.out.println("复制成功");
            wr.close();
            re.close();
        }
    }

    private static void 输出绝对路径(File f) {
        File[] file = f.listFiles();
        for (File i : file){
            if (i.isDirectory()){
                输出绝对路径(i);
            }else {
                if (i.getName().endsWith(".java")){
                    System.out.println(i.getAbsolutePath());
                }
            }
        }

    }

    private static void 生日前一周() throws ParseException {
        Calendar calendar = Calendar.getInstance();
        //将周一设为一周的第一天
        calendar.setFirstDayOfWeek(Calendar.MONDAY);


         //设置时间
        calendar.set(2000,10,24);
//        System.out.println("Current Date = " + calendar.getTime());

        //获取上周四
        calendar.add(Calendar.WEEK_OF_YEAR,-1);//上周
        calendar.set(Calendar.DAY_OF_WEEK, calendar.getFirstDayOfWeek()+3);


//        System.out.println("Updated Date = " + calendar.getTime());
        System.out.println("生日前一周四是该年的第"+calendar.get(Calendar.DAY_OF_YEAR)+"天");



    }

    private static void 大数运算() {
        BigDecimal b1 = new BigDecimal("4444444.4444");
        BigDecimal b2 = new BigDecimal("3.333333");
        BigDecimal result = b1.divide(b2,2, RoundingMode.HALF_UP);
        System.out.println(result);

    }
}
